/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.fesppr.sacob.dao;

import br.fesppr.sacob.dto.PessoaDTO;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author chrestenzen
 */
public class PessoaDAO
{

    private Statement stm;
    private Connection con;

    public PessoaDAO()
    {
        try {
            con = SacobDAO.getConexao();
            stm = con.createStatement();
        } catch (SQLException ex) {
            Logger.getLogger(PessoaDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    
    
//    public ArrayList listaAll()
//    {
//        ResultSet rs =null;
//        PessoaDTO p = new PessoaDTO();
//        ArrayList<PessoaDTO> lista = new ArrayList<PessoaDTO>();
//        
//        try {
//             rs = stm.executeQuery("SELECT * FROM TPESSOA");
//             while(rs.next())
//            {
//                p.setNome(rs.getString("nome"));
//                p.setCpf(rs.getString("cpf"));
//                lista.add(p);
//            }
//             
//        } catch (SQLException ex) {
//            Logger.getLogger(PessoaDAO.class.getName()).log(Level.SEVERE, null, ex);
//        }
//        
//        return lista;
  //  }
    
    public PessoaDTO listaPorCPF(String cpf)
    {
        ResultSet rs =null;
        PessoaDTO p = new PessoaDTO();
        
        
        try {
             rs = stm.executeQuery("SELECT * FROM TPESSOA WHERE cpf = \'" + cpf + "\';");
             while(rs.next())
            {
                p.setNome(rs.getString("nome"));
                p.setCpf(rs.getString("cpf"));
                p.setBairro(rs.getString("bairro"));
                p.setCelular(rs.getString("celular"));
                p.setTelefone(rs.getString("telefone"));
                p.setCep(rs.getString("cep"));
                p.setEmail(rs.getString("email"));
                p.setDataNascimento(rs.getString("data_nascimento"));
                p.setLogradouro(rs.getString("logradouro"));
                p.setNumero(rs.getInt("numero"));
                p.setCidade(rs.getString("cidade"));
                p.setEstado(rs.getString("estado"));
                p.setRg(rs.getString("rg"));
                

                
            }
                          
        } catch (SQLException ex) {
            Logger.getLogger(PessoaDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        return p;
    }
    
    public void inserirPessoa(PessoaDTO pessoa)
    {
        try
        {
        stm.executeUpdate("INSERT INTO tpessoa(nome, telefone, celular, cpf, rg, sexo, data_nascimento, logradouro, cidade, estado, bairro, cep, email, numero)"
                +   "VALUES (\'" + pessoa.getNome() + "\',\'" + pessoa.getTelefone() + "\',\'" + pessoa.getCelular() + "\',\'" + pessoa.getCpf() + "\',\'" + pessoa.getRg() + "\',\'" + pessoa.getSexo() + "\',\'" + pessoa.getDataNascimento() + "\',\'" + pessoa.getLogradouro() + "\',\'" + pessoa.getCidade() + "\',\'" + pessoa.getEstado() + "\',\'" + pessoa.getBairro()+ "\',\'" + pessoa.getCep() + "\',\'" + pessoa.getEmail() + "\',"+pessoa.getNumero()+ ")");
        
        JOptionPane.showMessageDialog(null,"Cliente Cadastrado com sucesso","SACOB",JOptionPane.INFORMATION_MESSAGE);
        }
        catch (SQLException ex)
        {
            Logger.getLogger(PessoaDAO.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null,"Falha ao cadastrar cliente","SACOB",JOptionPane.INFORMATION_MESSAGE);
        }
    }
    public void editarPessoa (PessoaDTO pessoa, String cpf)
    {
        try
        {
         stm.executeUpdate("UPDATE tpessoa SET nome=\'"+ pessoa.getNome()  +"\', telefone=\'"+pessoa.getTelefone()+"\', celular=\'"+pessoa.getCelular()+"\',logradouro=\'"+pessoa.getLogradouro() +"\',cidade=\'"+pessoa.getCidade()+"\',estado=\'"+pessoa.getEstado()+"\',bairro=\'"+pessoa.getBairro()+"\',cep=\'"+pessoa.getCep()+"\',email=\'"+pessoa.getEmail()+"\',numero="+pessoa.getNumero()+",data_nascimento="+pessoa.getDataNascimento()+" WHERE cpf = \'" + cpf + "\';");
        
         JOptionPane.showMessageDialog(null, "As alterações foram realizadas com Sucesso!", "SACOB", JOptionPane.INFORMATION_MESSAGE);
        }
        catch (Exception e)
        {
         e.printStackTrace();   
        }    
    }
    
    
    @Override
    protected void finalize() throws Throwable
    {
        stm.close();
        con.close();
    }
}
